const icons = {
    true: chrome.runtime.getURL('icons/on.png'),  // 开启状态
    false: chrome.runtime.getURL('icons/off.png') // 关闭状态
};


let state = false;

chrome.action.onClicked.addListener(() => {
    sendMessage({action: 'stateChanged', data: !state}).then(resp => {
        state = resp;
        chrome.action.setIcon({ path: icons[state] });
        chrome.storage.session.set({ toggleState: state });
    }).catch(err => console.log(err));
});


/**
 * background向活跃窗口发送消息
 * @param action
 * @param data
 */
function sendMessage({action, data}) {
    return new Promise((resolve, reject) => {
        // 查询当前活动标签
        chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
            // 处理 query 可能的错误
            if (chrome.runtime.lastError) {
                reject(`查询标签失败`);
                return;
            }

            // 检查是否找到标签
            if (!tabs.length) {
                reject('未找到活动标签');
                return;
            }

            const tabId = tabs[0].id;
            // 发送消息并处理结果
            chrome.tabs.sendMessage(tabId, { action, data }, (response) => {
                // 处理 sendMessage 可能的错误
                if (chrome.runtime.lastError) {
                    reject(`消息发送失败`);
                    return;
                }
                // 成功时返回响应数据
                resolve(response);
            });
        });
    });
}